GetPlugin("Blog"); return $Entry->GetBlogId() == $Blog->ConfigSetting("EmailNotificationBlog") && $Blog->NotificationsCouldBeSent($Entry, User::getCurrentUser()); } /** * Get the entry's field value. * * This method is used to return the value of a field with the passed in $FieldId * for the passed in entry. * * @param mixed $Entry An entry. * @param mixed $FieldId The id of the field whose value is to be returned. * @return mixed field value if exists. Otherwise, returns an empty string. */ function GetFieldValueForDisplay($Entry, $FieldId) { global $H_Schema; $Methods = [ Blog::TITLE_FIELD_NAME => "TitleForDisplay", Blog::AUTHOR_FIELD_NAME => "AuthorForDisplay", Blog::EDITOR_FIELD_NAME => "EditorForDisplay", Blog::CREATION_DATE_FIELD_NAME => "CreationDateForDisplay", Blog::MODIFICATION_DATE_FIELD_NAME => "ModificationDateForDisplay", Blog::PUBLICATION_DATE_FIELD_NAME => "PublicationDateForDisplay" ]; $FieldName = $H_Schema->GetField($FieldId)->Name(); return isset($Methods[$FieldName]) ? $Entry->{$Methods[$FieldName]}() : ""; } # ----- MAIN ----------------------------------------------------------------- $SafeSchemaId = defaulthtmlentities($H_Schema->Id()); $PageTitle = "Blog Entries"; PageTitle($PageTitle); # item list ui fields definitions $BlogFieldDefinitions = [ Blog::TITLE_FIELD_NAME => [ "Heading" => "Title", "MaxLength" => 32, "Link" => "index.php?P=P_Blog_Entry&ID=\$ID", "ValueFunction" => "GetFieldValueForDisplay" ], Blog::AUTHOR_FIELD_NAME => [ "Heading" => "Author", "ValueFunction" => "GetFieldValueForDisplay" ], Blog::EDITOR_FIELD_NAME => [ "Heading" => "Editor", "ValueFunction" => "GetFieldValueForDisplay" ], Blog::CREATION_DATE_FIELD_NAME => [ "Heading" => "Created", "ValueFunction" => "GetFieldValueForDisplay" ], Blog::MODIFICATION_DATE_FIELD_NAME => [ "Heading" => "Modified", "DefaultToDescendingSort" => true, "ValueFunction" => "GetFieldValueForDisplay" ], Blog::PUBLICATION_DATE_FIELD_NAME => [ "Heading" => "Publication Date", "ValueFunction" => "GetFieldValueForDisplay" ], "Public" => [ "Heading" => "Pub", "ValueFunction" => function ($Entry) { return $Entry->userCanView(User::getAnonymousUser()) ? "Yes" : "No"; }, "Sortable" => false ] ]; # blog list item button links $BaseLink = "index.php?P=P_Blog_ListEntries&CK=".$H_Checksum."&".$H_BlogSelectVarName ."=".$H_CurrentBlogId; $ViewLink = "index.php?P=P_Blog_Entry&ID=\$ID"; $EditLink = $H_Schema->editPage(); $NotifyLink = "index.php?P=P_Blog_ConfirmNotifySubscribers&ID=\$ID"; $DeleteLink = "index.php?P=EditResourceComplete&ID=\$ID&Submit=Delete"; # Top level button and option list links $AddNewEntryLink = str_replace('$ID', "NEW&SC=".$SafeSchemaId, $H_Schema->editPage()); $ManageSubscribersLink = "index.php?P=P_Blog_ManageSubscribers"; $BlogOptionListLink = "index.php?P=P_Blog_ListEntries"; # initiate and add action buttons to the blog entry list $ListUI = new ItemListUI($BlogFieldDefinitions); $ListUI->BaseLink($BaseLink); $ListUI->AddActionButton( "View", $ViewLink, null, null, ["title" => "View this blog entry"] ); $ListUI->AddActionButton( "Edit", $EditLink, "pencil.png", null, ["title" => "Edit this blog entry"] ); $ListUI->AddActionButton( "Notify", $NotifyLink, null, "ShouldDisplayEmailNotify", ["title" => "Send e-mail notifications to subscribers about this blog entry"] ); $ListUI->AddActionButton( "Delete", $DeleteLink, null, null, ["title" => "Permanently delete this blog entry"] ); # add a "pick-blog" option list $Blog = $GLOBALS["G_PluginManager"]->GetPlugin("Blog"); $ListUI->AddTopOptionList( $Blog->GetAvailableBlogs(), $H_BlogSelectVarName, $BlogOptionListLink, $H_CurrentBlogId ); # add a button linking to Manage Subscribers page if ($H_CurrentBlogId == $Blog->ConfigSetting("EmailNotificationBlog")) { $ListUI->AddTopButton("Manage Subscribers", $ManageSubscribersLink); } # add an add-entry button for user with the privilege if ($H_Schema->UserCanAuthor(User::getCurrentUser())) { $ListUI->AddTopButton("New Entry", $AddNewEntryLink); } # set other setting and display the list $ListUI->Heading($PageTitle); $ListUI->NoItemsMessage("There are no blog entries."); $ListUI->ItemsPerPage($H_PageSize); $ListUI->Display($H_BlogEntries, $H_EntryCount, $H_PageOffset);